import Field from '@model/entity/Field'
/* 字段映射 */

/* 通用映射 */
export enum CommonMappingEnum {
  // 自定义属性
  Attribute = 'attribute',
  // 客户
  Customer = 'customer',
  // 事件
  Event = 'event',
  // 产品
  Product = 'product',
  // 工单
  Task = 'task',
  // 服务商
  ServiceProviders = 'serviceProviders',
}

/* 字段类型映射 */
export enum FieldTypeMappingEnum {
  // 地址类型
  Address = 'address',
  // 附件类型
  Attachment = 'attachment',
  ImageDisplay = 'imageDisplay',
  // 签名类型
  Autograph = 'autograph',
  // 计算公式
  Formula = 'formula',
  // 级联选择器
  Cascader = 'cascader',
  // 日期类型
  Date = 'date',
  // 日期时间类型
  DateTime = 'datetime',
  // 邮箱
  Email = 'email',
  // 工程师资质
  EngineerQualification = 'engineerQualification',
  // 故障库
  FaultLibrary = 'faultLibrary',
  // 分组
  Group = 'group',
  // 说明信息类型
  Info = 'info',
  // 位置类型
  Location = 'location',
  // 物流
  Logistics = 'logistics',
  // 物料返还
  MaterialReturn = 'materialReturn',
  // 物料核销
  MaterialVerifyEliminate = 'materialVerifyEliminate',
  // 质保规则 (产品类型)
  QualityRule = 'quality_rule',
  // 质保信息 (产品)
  QualityInfo = 'quality_info',
  // 多选
  SelectMulti = 'selectMulti',
  // 下拉菜单
  Select = 'select',
  // 单行文本
  Text = 'text',
  // 数字
  Number = 'number',
  // 多行文本
  Textarea = 'textarea',
  // 关联工单
  RelatedTask = 'related_task',
  // 产品质保
  ProductWarrantyService = 'productWarrantyService',
  // 分割线
  Separator = 'separator',
  // 备件
  Sparepart = 'sparepart',
  // 服务项目
  ServiceIterm = 'serviceIterm',
  // 服务商
  ServiceProviders = 'serviceProviders',
  // 服务商资质
  ServiceProviderQualification = 'serviceProviderQualification',
  // 人员
  User = 'user',
  // 样式
  Style = 'style',
  // 关联客户
  RelatedCustomer = 'relationCustomer',
  // 客户关联字段里面的客户
  RelatedCustomers = 'related_customers',
  // 关联产品
  RelatedProduct = 'relationProduct',
  // 关联表单
  RelatedForm = 'relationForm',
  // 身份信息
  IdCard = 'idcard',
  // 连接器
  Connector = 'connector',
  // 货币金额
  Currency = 'currency',
  // 故障清单
  NewFaultLibrary = 'newFaultLibrary',
  //  服务商授权区域
  AuthorizeAddress = 'authorizeAddress',
  //  服务商授权产品目录
  AuthorizeProduct = 'authorizeProduct',
  // 服务商标签
  TagLabel = 'tagLabel',
  // 被指派人
  TaskUserName = 'taskUserName',
  // 备件返还
  SparePartsReturnExpense = 'sparePartsReturnExpense',
  // 代码块
  JsCodeBlock = 'jsCodeBlock',
}

/* 事件字段映射 */
export enum EventFieldNameMappingEnum {
  // 接单用时
  AcceptUsedTimeStr = 'acceptUsedTimeStr',
  // 地址
  Address = 'address',
  // 派单方式
  AllotTypeStr = 'allotTypeStr',
  // 附件
  Attachment = 'attachment',
  // 创建人名字
  CreateUserName = 'createUserName',
  // 客户
  Customer = 'customer',
  // 负责人名字
  ExecutorName = 'executorName',
  // 信息
  Info = 'info',
  // 优先级
  Level = 'level',
  // 联系人
  Linkman = 'linkman',
  // 位置
  Location = 'location',
  // 曾超时
  OnceOverTime = 'onceOverTime',
  // 曾拒绝
  OnceRefused = 'onceRefused',
  // 曾暂停
  OncePaused = 'oncePaused',
  // 曾回退
  OnceRollback = 'onceRollback',
  // 曾转派
  OnceReallot = 'onceReallot',
  // 曾打印
  OncePrinted = 'oncePrinted',
  // 支付方式
  PaymentMethod = 'paymentMethod',
  // 计划时间
  PlanTime = 'planTime',
  // 异常标记
  PositionException = 'positionException',
  // 产品
  Product = 'product',
  // 服务内容
  ServiceContent = 'serviceContent',
  // 服务类型
  ServiceType = 'serviceType',
  // 分割线
  Separator = 'separator',
  // 工单状态
  State = 'state',
  // 协同人
  Synergies = 'synergies',
  // 是否发送短信标记
  Tick = 'tick',
  // 工单编号
  TaskNo = 'taskNo',
  // 工单客户地址
  Taddress = 'taddress',
  // 响应用时
  TaskResponseTimeStr = 'taskResponseTimeStr',
  // 工单用时
  TaskUsedTimeStr = 'taskUsedTimeStr',
  // 联系人名字
  TlmName = 'tlmName',
  // 联系人电话
  TlmPhone = 'tlmPhone',
  // 更新时间
  UpdateTime = 'updateTime',
  // 工作用时
  WorkUsedTimeStr = 'workUsedTimeStr'
}

/* 工单字段映射 */
export enum TaskFieldNameMappingEnum {
  // 接单用时
  AcceptUsedTimeStr = 'acceptUsedTimeStr',
  // 地址
  Address = 'address',
  // 派单方式
  AllotTypeStr = 'allotTypeStr',
  // 派单人
  AllotName = 'allotName',
  // 物流
  Logistics = 'logistics',
  // 附件
  Attachment = 'attachment',
  // 结算状态
  BalanceConfirm = 'balanceConfirm',
  // 结算操作
  BalanceOperation = 'balanceOperation',
  // 结算时间
  BalanceTime = 'balanceTime',
  // 结算人
  BalanceUser = 'balanceUser',
  // 结算人
  BalanceUserName = 'balanceUserName',
  // 创建人名字
  CreateUserName = 'createUserName',
  // 完成时间
  CompleteTime = 'completeTime',
  // 创建时间
  CreateTime = 'createTime',
  // 已创建工单
  CreatedTasks = 'createdTasks',
  // 客户
  Customer = 'customer',
  // 成本
  Cost = 'cost',
  // 折扣费用
  Discount = 'discount',
  // 行程距离 (工时记录)
  Distance = 'distance',
  // 描述
  Description = 'description',
  // 负责人名字
  ExecutorName = 'executorName',
  // 负责人团队
  ExecutorTags = 'executorTags',
  // 结束位置 (工时记录)
  EndAddress = 'endAddress',
  // 结束时间 (工时记录)
  EndTime = 'endTime',
  // 关联事件
  EventNo = 'eventNo',
  // 信息
  Info = 'info',
  // 审批状态
  InApprove = 'inApprove',
  // 优先级
  Level = 'level',
  // 质保信息
  Quality = 'quality',
  // 联系人
  Linkman = 'linkman',
  // 位置
  Location = 'location',
  // 曾超时
  OnceOverTime = 'onceOverTime',
  // 曾拒绝
  OnceRefused = 'onceRefused',
  // 曾暂停
  OncePaused = 'oncePaused',
  // 曾回退
  OnceRollback = 'onceRollback',
  // 曾转派
  OnceReallot = 'onceReallot',
  // 曾打印
  OncePrinted = 'oncePrinted',
  // 支付方式
  PaymentMethod = 'paymentMethod',
  // 计划时间
  PlanTime = 'planTime',
  // 计划开始时间
  PlanStartTime = 'planStartTime',
  // 计划完成时间
  PlanEndTime = 'planEndTime',
  // 异常标记
  PositionException = 'positionException',
  // 产品
  Product = 'product',
  // 产品编号
  ProductSN = 'productSN',
  // 毛利
  Profit = 'profit',
  // 备注 (工时记录)
  Remark = 'remark',
  // 服务内容
  ServiceContent = 'serviceContent',
  // 服务费
  ServicePartsPrice = 'servicePartsPrice',
  // 服务类型
  ServiceType = 'serviceType',
  // 分割线
  Separator = 'separator',
  // 工单状态
  State = 'state',
  // 协同人
  Synergies = 'synergies',
  // 备件折扣费用
  SparePartsCost = 'sparePartsCost',
  // 备件费
  SparePartsPrice = 'sparePartsPrice',
  // 服务费用
  ServiceCost = 'serviceCost',
  // 开始位置 (工时记录)
  StartAddress = 'startAddress',
  // 开始时间 (工时记录)
  StartTime = 'startTime',
  // 服务商
  ServiceProviders = 'serviceProviders',
  // 合计费用
  TotalPrice = 'totalPrice',
  // 成本
  TotalCost = 'totalCost',
  // 毛利
  TotalProfit = 'totalProfit',
  // 是否发送短信标记
  Tick = 'tick',
  // 工单编号
  TaskNo = 'taskNo',
  // 工单客户地址
  Taddress = 'taddress',
  // 响应用时
  TaskResponseTimeStr = 'taskResponseTimeStr',
  // 工单用时
  TaskUsedTimeStr = 'taskUsedTimeStr',
  // 联系人名字
  TlmName = 'tlmName',
  // 联系人电话
  TlmPhone = 'tlmPhone',
  // 更新时间
  UpdateTime = 'updateTime',
  // 用时类别 (工时记录)
  UsedTimeType = 'usedTimeType',
  // 工作用时
  WorkUsedTimeStr = 'workUsedTimeStr',
  // 产品关联字段
  RelationProduct = 'relationProduct',
  // 客户关联字段
  RelationCustomer = 'relationCustomer',
  // 备件关联字段
  relationReplacementPart='relationReplacementPart',
  // 备件
  ReplacementPart='ReplacementPart',
  // 工单关联字段
  RelationTask='relationTask'
}

export enum TaskFieldExportNameMappingEnum {
  // 备件名称
  SparePartName = 'spare_name',
  // 备件编号
  SparePartSN = 'spare_serialNumber',
  // 备件类型
  SparePartType = 'spare_type',
  // 备件标准
  SparePartStandard = 'spare_standard',
  // 备件数量
  SparePartNumber = 'spare_number',
  // 备件费用
  SparePartCost = 'spare_cost',
  SparePartsPrice = 'spare_parts_price',
  // 备件规格
  SpareStandard = 'spare_standard',
  // 服务名称
  ServiceName = 'service_name',
  // 服务类型
  ServiceType = 'service_type',
  // 服务数量
  ServiceNumber = 'service_number',
  // 服务费用
  ServiceCost = 'service_cost',
  ServicePartsPrice = 'service_parts_price',
  // 结算全部费用
  BalanceTotal = 'balance_total',
  // 结算折扣费用
  BalanceDiscount = 'balance_discount',
  // 结算和
  BalanceSum = 'balance_sum'
}

export enum TaskFieldDisplayNameMappingEnum {
  BalanceConfirm = '结算状态',
  BalanceTime = '结算时间',
  BalanceUserName = '结算人',
  Discount = '折扣费用',
  Distance = '行程距离',
  EndAddress = '结束位置',
  OperatorUser = '操作人',
  OperatorTime = '操作时间',
  StartAddress = '开始位置',
  SparePartsPrice = '备件费',
  ServicePartsPrice = '服务费',
  TotalPrice = '合计费用',
  TotalCost = '成本',
  TotalProfit = '毛利',
}

/* 客户字段映射 */
export enum CustomerFieldNameMappingEnum {
  // 地址
  Address = 'address',
  // 客户
  Customer = 'customer',
  // 客户负责人
  CustomerManager = 'customerManager',
  // 客户负责人名字
  CustomerManagerName = 'customerManagerName',
  // 联系人
  Linkman = 'linkman',
  // 产品
  Product = 'product',
  // 编号
  SerialNumber = 'serialNumber',
  // 团队
  Tags = 'tags',
}

/* 产品字段映射 */
export enum ProductFieldNameMappingEnum {
  // 地址
  Address = 'address',
  // 客户
  Customer = 'customer',
  // 联系人
  Linkman = 'linkman',
  // 产品
  Product = 'product',
  // 质保信息计算方式
  QualityCalculation = 'qualityCalculation',
  // 质保信息
  QualityInfo = 'qualityInfo',
  // 质保信息 开始时间 (前端)
  QualityInfoStartTime = 'qualityInfoStartTime',
  // 质保信息 开始时间 (后端)
  QualityStartTime = 'qualityStartTime',
  // 质保信息 结束时间 (前端)
  QualityInfoEndTime = 'qualityInfoEndTime',
  // 质保信息 结束时间 (后端)
  QualityEndTime = 'qualityEndTime',
  // 质保信息 质保状态
  QualityInfoStatus = 'qualityInfoStatus',
  // 质保信息 分割线
  QualityRuleInfoSeparator = 'qualityRuleInfoSeparator',
  // 质保信息 质保期
  QualityRuleInfoPeriod = 'qualityRuleInfoPeriod',
  // 编号
  SerialNumber = 'serialNumber',
  // 类型
  Type = 'type',
  // 团队
  Tags = 'tags',
  // 产品负责人
  ProductManager = 'productManager',
  // 产品负责人名字
  ProductManagerName = 'productManagerName',
  // 产品目录
  CatalogPathNam='catalogPathName'
}

/* 产品类型字段映射 */
export enum ProductTypeFieldNameMappingEnum {
  // 质保规则
  QualityRule = 'qualityRule',
  // 产品简介
  ProductDescription = 'productDesc',
  // 产品分类/目录
  ProductCatalog = 'pathName',
  // 质保起算时间
  QualityStartTime = 'qualityStartTime',
  // 质保时长
  QualityTime = 'qualityTime',

  QualityFiledName = 'qualityFiledName'
}

/* 团队实体字段映射 */
export enum TagEntityMappingEnum {
  // 团队名字
  TagName = 'tagName',
}

/* 字段是否为空类型枚举 */
export enum FieldIsNullTypeEnum {
  Null = 1,
  NotNull = 0
}

/* 物流字段映射 */
export enum LogisticsFieldNameMappingEnum {
  // 物流公司
  LogisticsCompany = 'logistics_company',
  // 物流单号
  LogisticsNo = 'logistics_no'
}

/* 项目管理字段映射 */
export enum ProjectManageFieldNameMappingEnum {
  // 项目名称
  ProjectName = 'projectName',
  // 项目负责人
  ManagerPerson = 'managerPerson',
  // 联系人
  Linkman = 'linkman',
  // 客户地址
  Address = 'address',
  // 项目进度
  ProjectProcess = 'projectProcess',
  // 状态
  ProjectStatusName = 'projectStatusName',
}
